2023/12/232001字符

String

  • Go 语言中的字符串是一个字节的切片,可以通过将其封装在 "" 中来创建字符串
  • 字符串是一些字节的集合(一个字符的序列),每个字符都有固定的位置(索引/下标)
package main

import "fmt"

func main() {
    str := "h 哈"  // 一个汉字占 3 个字节

    fmt.Println(len(str))  //--> 5

    // 按字节遍历
    for i := 0; i < len(str); i++ {
        // fmt.Println(str[i])
        fmt.Printf("%c\n", str[i])  //--> h å
    }

    for _, value := range str {
        fmt.Printf("%c\n", value)  //--> h 哈
    }
}

strings API

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "hello"  // 一个汉字占 3 个字节

    // 是否包含
    fmt.Println(strings.Contains(str, "abc"))  //--> false
    // 是否包含 chars 中任意的字符
    fmt.Println(strings.ContainsAny(str, "abcl"))  //--> true
    // 统计字符串出现次数
    fmt.Println(strings.Count(str, "l"))  //--> 2

    // 判断是否以字符串开头
    fmt.Println(strings.HasPrefix(str, "h"))  //--> true
    // 判断是否以字符串结尾
    fmt.Println(strings.HasSuffix(str, "o"))  //--> true

    // 字符串第一次出现的索引,不存在为 -1
    fmt.Println(strings.Index(str, "l"))  //--> 2
    // 字符串中出现 chars 中任意的字符,以下标最小的为准
    fmt.Println(strings.IndexAny(str, "lh"))  //--> 0
    // 字符串第一次出现的索引,倒叙查找
    fmt.Println(strings.LastIndex(str, "l"))  //--> 3

    // newStr := ""
    // for i, _ := range str {
    // 		value := str[i:i+1]
    //     // newStr += strings.Join(value, "-")
    // }
    // fmt.Println(newStr)  //--> 

    fmt.Println(strings.Split(str, "e"))  //--> [h llo]
    fmt.Println(strings.Repeat(str, 2))  //--> hellohello
    fmt.Println(strings.Repeat(str, 2))  //--> hellohello
    // 字符替换 参数4 为 -1 表示全部替换
    fmt.Println(strings.Replace(str, "l", "*", 1))  //--> he*lo
    fmt.Println(strings.ToLower(str))  //--> hello
    fmt.Println(strings.ToUpper(str))  //--> HELLO

}